1. Technical Field
This application relates to managing initialization of file systems.
2. Description of Related Art
Computer systems may include different resources used by one or more host processors. Resources and host processors in a computer system may be interconnected by one or more communication connections. These resources may include, for example, data storage devices such as file servers and those included in the data storage systems manufactured by EMC Corporation. These data storage systems may be coupled to one or more servers or host processors and provide storage services to each host processor. Multiple data storage systems from one or more different vendors may be connected and may provide common data storage for one or more host processors in a computer system.
A host processor may perform a variety of data processing tasks and operations using the data storage system. For example, a host processor may perform basic system I/O operations in connection with data requests, such as data read and write operations.
Host processor systems may store and retrieve data using a storage device containing a plurality of host interface units, disk drives, and disk interface units. The host systems access the storage device through a plurality of channels provided therewith. Host systems provide data and access control information through the channels to the storage device and the storage device provides data to the host systems also through the channels. The host systems do not address the disk drives of the storage device directly, but rather, access what appears to the host systems as a plurality of logical disk units. The logical disk units may or may not correspond to the actual disk drives. Allowing multiple host systems to access the single storage device unit allows the host systems to share data in the device. In order to facilitate sharing of the data on the device, additional software on the data storage systems may also be used.
In data storage systems where high-availability is a necessity, system administrators are constantly faced with the challenges of preserving data integrity and ensuring availability of critical system components. One critical system component in any computer processing system is its file system. File systems include software programs and data structures that define the use of underlying data storage devices. File systems are responsible for organizing disk storage into files and directories and keeping track of which part of disk storage belong to which file and which are not being used.
Additionally, the need for high performance, high capacity information technology systems is driven by several factors. In many industries, critical information technology applications require outstanding levels of service. At the same time, the world is experiencing an information explosion as more and more users demand timely access to a huge and steadily growing mass of data including high quality multimedia content. The users also demand that information technology solutions protect data and perform under harsh conditions with minimal data loss and minimum data unavailability. Computing systems of all types are not only accommodating more data but are also becoming more and more interconnected, raising the amounts of data exchanged at a geometric rate.
To address this demand, modern data storage systems (“storage systems”) are put to a variety of commercial uses. For example, they are coupled with host systems to store data for purposes of product development, and large storage systems are used by financial institutions to store critical data in large databases. For many uses to which such storage systems are put, it is highly important that they be highly reliable and highly efficient so that critical data is not lost or unavailable.
A data storage system, such as a file server, has a number of disk drives for storing files of one or more file systems, and at least one data processor coupled to the disk drives for access to the file systems. The data processor executes various computer programs. Occasionally it becomes necessary to restart execution of the data processor by resetting the data processor. For example, the data processor is reset after its normal sequence of program execution has become disrupted by an error such as a power surge, a program memory failure, and a software bug. Alternatively, a failure of a data processor in a file server may trigger a failover process that transfers functions of the data processor to a standby data processor of the file server in order to provide continuous availability of data to clients connected to the file server. Moreover, the failover process may be triggered due to failures such as a bad disk in a data storage system. Typically, a data processor of a file server executes application programs with the assistance of an operating system program. The reset of the data processor causes a “re-boot” (also referred to as “reboot”) of the operating system, followed by the mounting of file systems, and initiation of execution of one or more application programs. If the file server contains a large number of small files, it may take a long time (e.g. hundreds of seconds) before access to data may be restored for clients connected to the file server. During the reboot of the operating system, clients of the file server are denied access to files in the file server.